import { app, BrowserWindow, ipcMain } from 'electron'

/**
 * Set `__static` path to static files in production
 * https://simulatedgreg.gitbooks.io/electron-vue/content/en/using-static-assets.html
 */
if (process.env.NODE_ENV !== 'development') {
  global.__static = require('path').join(__dirname, '/static').replace(/\\/g, '\\\\')
}

let mainWindow
const winURL = process.env.NODE_ENV === 'development'
  ? `http://localhost:5927`
  : `file://${__dirname}/index.html`

function createWindow () {
  /**
   * Initial window options
   */
  mainWindow = new BrowserWindow({
    width: 1366,
    height: 768,
    minWidth:1366,
    minHeight:768,

    // Boolean (可选) - width 和 height 将使用 web 页面的尺寸,
    // 这意味着实际窗口的尺寸应该包括窗口框架的大小，稍微会大一点。 默认值为 false.
    useContentSize: true,
    //  Object (可选) - 网页功能的设置
    webPreferences: {
      //  Boolean (可选) - 当设置为 false,
      // 它将禁用同源策略 (通常用来测试网站), 如果此选项不是由开发者设置的，
      // 还会把 allowRunningInsecureContent设置为 true. 默认值为 true。
      webSecurity: false
    },
    // Boolean (可选) - 自动隐藏菜单栏, 除非按了Alt键. 默认值为false.
    autoHideMenuBar: false,

    // (NativeImage | String) (可选) - 窗口的图标. 在 Windows 上推荐使用 ICO 图标来获得最佳的视觉效果, 默认使用可执行文件的图标.
    // icon: ''

    // 要创建无边框窗口，只需在 BrowserWindow 的 options 中将 frame 设置为 false
    // 无边框模式下，需要设置body样式和css
    frame: false,
    // 通过将 transparent 选项设置为 true, 还可以使无框窗口透明
    // transparent: true,
  })

  mainWindow.loadURL(winURL)

  mainWindow.on('closed', () => {
    mainWindow = null
  })

  mainWindow.on('show-window', () => {
    mainWindow.maximize()
  })

  mainWindow.on('login-window', () => {
    mainWindow.setSize(1024, 768)
  })
}

app.on('ready', createWindow)

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', () => {
  if (mainWindow === null) {
    createWindow()
  }
})

const ipc = ipcMain
//登录窗口最小化
ipc.on('window-min',function(){
  mainWindow.minimize();
})
//登录窗口最大化
ipc.on('window-max',function(){
  if(mainWindow.isMaximized()){
    mainWindow.restore();
  }else{
    mainWindow.maximize();
  }
})
ipc.on('window-close',function(){
  mainWindow.close();
})
